package loja.model.handler.impl;

import loja.model.entity.produto.Categoria;
import loja.model.entity.produto.Grupo;

public class CategoriaHandlerView extends
		AbstractHandlerViewEntity<Categoria, Integer> {

	private final String ID = "idCategoria";
	private final String NOME = "nome";
	private final String GRUPO = "grupo";

	public CategoriaHandlerView() {
		super(new Categoria());
	}

	@Override
	public Integer getPrimaryKeyOfViewEntity() {
		return getEntity().getIdCategoria();
	}

	@Override
	public void updateEntity() {

		int idCategoria;
		String nome;
		Grupo grupo;

		if (propertyViews.containsKey(ID)) {
			idCategoria = Integer.parseInt(propertyViews.get(ID)
					.getPropertyValue().toString());
			getEntity().setIdCategoria(idCategoria);
		}

		if (propertyViews.containsKey(NOME)) {
			nome = String.valueOf(propertyViews.get(NOME).getPropertyValue());
			getEntity().setNome(nome);
		}

		if (propertyViews.containsKey(GRUPO)) {
			grupo = (Grupo) propertyViews.get(GRUPO).getPropertyValue();
			getEntity().setGrupo(grupo);
		}

	}

	@Override
	public void updateView() {

		int idCategoria = getEntity().getIdCategoria();
		String nome = getEntity().getNome();
		Grupo grupo = getEntity().getGrupo();

		if (propertyViews.containsKey(ID)) {
			propertyViews.get(ID).setPropertyValue(idCategoria);
		}

		if (propertyViews.containsKey(NOME)) {
			propertyViews.get(NOME).setPropertyValue(nome);
		}

		if (propertyViews.containsKey(GRUPO)) {
			propertyViews.get(GRUPO).setPropertyValue(grupo);
		}

	}
}
